Passa al contenuto principale

Introduzione

Il flusso di lavoro per il machine learning supervisionato consiste nelle seguenti fasi:

alt text

Queste fasi sono iterative, il che significa che, dopo aver valutato ogni passaggio, potrebbe essere necessario apportare modifiche prima di procedere.

Definire il problema

È importante prendersi del tempo per riflettere su dove il machine learning possa avere un impatto significativo. Considera il tipo di dati di cui disponi e il valore che può offrire. Più conosci i dati, più velocemente potrai creare modelli di machine learning in grado di generare informazioni utili. Quali tipi di schemi vuoi scoprire nei tuoi dati? Quale tipo di valore vuoi prevedere: una categoria o un valore numerico? Le risposte a queste domande ti aiuteranno a scegliere il tipo di analisi più adatto al tuo caso d'uso.

Dopo aver identificato il problema, valuta quali funzionalità di machine learning potrebbero aiutarti a risolverlo. L’apprendimento supervisionato richiede un set di dati che contenga valori noti su cui il modello può essere addestrato. L’apprendimento non supervisionato, come il rilevamento di anomalie o il rilevamento di outlier, non richiede questo presupposto.

Preparare e trasformare i dati

Hai definito il problema e selezionato un tipo di analisi appropriato. Il passaggio successivo consiste nel produrre un set di dati di alta qualità in Elasticsearch con una chiara relazione con i tuoi obiettivi di addestramento. Se i tuoi dati non sono già in Elasticsearch, questa è la fase in cui sviluppi la tua pipeline di dati. Per saperne di più su come inserire i dati in Elasticsearch, consulta la documentazione del nodo Ingest.

La regressione e la classificazione sono tecniche di machine learning supervisionato, quindi devi fornire un set di dati etichettato per l'addestramento. Questo è spesso definito come "ground truth". Il processo di addestramento utilizza queste informazioni per identificare le relazioni tra le varie caratteristiche dei dati e il valore previsto. Questo processo è fondamentale anche per la valutazione del modello.

Un requisito importante è un set di dati sufficientemente grande da addestrare un modello. Ad esempio, se vuoi addestrare un modello di classificazione che decida se un'email sia spam o meno, ti serve un set di dati etichettato che contenga abbastanza punti dati per ciascuna categoria possibile. La quantità di dati necessaria dipende da fattori come la complessità del problema o la soluzione di machine learning scelta. Non esiste un numero esatto per ogni caso; stabilire quanta sia sufficiente è un processo euristico che potrebbe richiedere prove iterative.

Prima di addestrare il modello, considera il preprocessing dei dati. In pratica, il tipo di preprocessing dipende dalla natura del set di dati. Il preprocessing può includere, tra le altre cose, la riduzione delle ridondanze, la riduzione dei bias, l'applicazione di standard e/o convenzioni, la normalizzazione dei dati e così via.

La regressione e la classificazione richiedono dati sorgente strutturati specificamente: una struttura dati tabellare bidimensionale. Per questo motivo, potresti dover trasformare i tuoi dati per creare un data frame che possa essere utilizzato come sorgente per questi tipi di analisi.

Addestrare, testare, iterare

Dopo aver preparato e trasformato i dati nel formato corretto, è il momento di addestrare il modello. L'addestramento è un processo iterativo: ogni iterazione è seguita da una valutazione per verificare le prestazioni del modello.

Il primo passo consiste nel definire le caratteristiche – i campi rilevanti nel set di dati – che verranno utilizzate per addestrare il modello. Per impostazione predefinita, tutti i campi con tipi supportati sono inclusi automaticamente nella regressione e nella classificazione. Tuttavia, puoi escludere facoltativamente i campi non rilevanti. In questo modo, un set di dati di grandi dimensioni risulta più gestibile, riducendo le risorse informatiche e il tempo necessario per l'addestramento.

Successivamente, devi definire come suddividere i dati in un set di addestramento e un set di test. Il set di test non sarà utilizzato per addestrare il modello; serve per valutare le prestazioni del modello. Non esiste una percentuale ottimale valida per tutti i casi; dipende dalla quantità di dati e dal tempo a disposizione per l'addestramento. Per set di dati di grandi dimensioni, potresti voler iniziare con una percentuale bassa per l'addestramento, in modo da completare un'iterazione end-to-end in breve tempo.

Durante il processo di addestramento, i dati di addestramento vengono fatti passare attraverso l'algoritmo di apprendimento. Il modello predice il valore e lo confronta con la ground truth, quindi il modello viene ottimizzato per rendere le previsioni più accurate.

Una volta addestrato il modello, puoi valutarne la capacità di prevedere dati non ancora visti attraverso l'errore di generalizzazione del modello. Esistono ulteriori tipi di valutazione sia per la regressione che per la classificazione, che forniscono metriche sulle prestazioni dell'addestramento. Quando sei soddisfatto dei risultati, sei pronto per distribuire il modello. Altrimenti, potresti voler modificare la configurazione dell'addestramento o considerare modi alternativi per pre-elaborare e rappresentare i dati.

Distribuire il modello

Hai addestrato il modello e sei soddisfatto delle sue prestazioni. L'ultimo passaggio consiste nel distribuire il modello addestrato e iniziare a utilizzarlo con nuovi dati.

La funzione di machine learning di Elastic chiamata inferenza ti consente di fare previsioni su nuovi dati, utilizzandola come processore in una pipeline di ingest, in una trasformazione continua o come aggregazione al momento della ricerca. Quando nuovi dati entrano nella tua pipeline di ingest o esegui una ricerca sui dati con un’aggregazione di inferenza, il modello viene utilizzato per analizzare i dati e fare previsioni.